The C++0x "Concepts" Effort

نویسنده

  • Jeremy G. Siek
چکیده

C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 but that was delayed to 2011. The largest language extension in C++0x was “concepts”, that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into C++0x, but then in July of 2009, the committee voted the concepts extension back out of C++0x. This article is my account of the technical challenges and debates within the “concepts” effort in the years 2003 to 2009. To provide some background, the article also describes the design space for constrained parametric polymorphism, or what is colloquially know as constrained generics. While this article is meant to be generally accessible, the writing is aimed toward readers with background in functional programming and programming language theory. This article grew out of a lecture at the Spring School on Generic and Indexed Programming at the University of Oxford, March 2010.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The C++0x “Concepts” Effort (Draft)

C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 (but that will probably appear in 2011). The largest language extension in C++0x was “concepts”, that is, a collection of features for constraining template parameters. In September of 2008, the C++ standards committee voted the concepts extension into ...

متن کامل

Emulating C++0x concepts

A library for the emulation of C++0x concepts developed using the emerging C++11 programming language is presented. The library integrates existing techniques for concept checking and template metaprogramming to provide a uniform interface to defining and using concepts. The purpose of this work is to establishing a concrete foundation for experimentation of design techniques for concepts and t...

متن کامل

Conceptless Random Number Generation in C++0X

The primary purpose of this paper is to excise concepts from the wording of the standard library's random number facility. In addition, we have herein provided wording to address all known related library issues (even for some that we believe ought be closed as NAD, in order to provide a basis for discussion). The usual color conventions are used throughout the text to denote the proposed chang...

متن کامل

A Concept Design for the STL

This report presents a concept design for the algorithms part of the STL and outlines the design of the supporting language mechanism. Both are radical simplifications of what was proposed in the C++0x draft. In particular, this design consists of only 41 concepts (including supporting concepts), does not require concept maps, and (perhaps most importantly) does not resemble template metaprogra...

متن کامل

Concepts for C++0x

3 Design rationale 4 3.1 Template compilation model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Specific language features in the design space . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.1 Named conformance vs. structural conformance . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 New templates vs. new template parameters . . . . . . . . ....

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010